🎖️GitЯра🎖️
Node / meshtastic / Meshtastic-Android / files / desktopApp / src / main / kotlin / org / meshtastic / desktop / stub / NoopStubs.kt
Displaying Raw • Download
desktopApp/src/main/kotlin/org/meshtastic/desktop/stub/NoopStubs.kt jamesarich/issue-5546-alignment-add-missing-network-config-fi-fbde6f (af812383) Text, 6.27 KB
T8b949e/*
* Copyright (c) 2026 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Tf0883e@fileTb4b4b4:Te6edf3SuppressTb4b4b4(Ta5d6ff"Ta5d6ffEmptyFunctionBlockTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffTooManyFunctionsTa5d6ff"Tb4b4b4)
Tff7b72package T7ee787org.meshtastic.desktop.stub
Tff7b72import T7ee787co.touchlab.kermit.Logger
Tff7b72import T7ee787kotlinx.coroutines.CoroutineScope
Tff7b72import T7ee787kotlinx.coroutines.Dispatchers
Tff7b72import T7ee787kotlinx.coroutines.SupervisorJob
Tff7b72import T7ee787kotlinx.coroutines.flow.Flow
Tff7b72import T7ee787kotlinx.coroutines.flow.MutableSharedFlow
Tff7b72import T7ee787kotlinx.coroutines.flow.MutableStateFlow
Tff7b72import T7ee787kotlinx.coroutines.flow.asFlow
Tff7b72import T7ee787kotlinx.coroutines.flow.emptyFlow
Tff7b72import T7ee787org.meshtastic.core.model.ConnectionState
Tff7b72import T7ee787org.meshtastic.core.model.DataPacket
Tff7b72import T7ee787org.meshtastic.core.model.DeviceType
Tff7b72import T7ee787org.meshtastic.core.model.InterfaceId
Tff7b72import T7ee787org.meshtastic.core.model.MeshActivity
Tff7b72import T7ee787org.meshtastic.core.model.MessageStatus
Tff7b72import T7ee787org.meshtastic.core.model.Node
Tff7b72import T7ee787org.meshtastic.core.network.repository.MQTTRepository
Tff7b72import T7ee787org.meshtastic.core.repository.AppWidgetUpdater
Tff7b72import T7ee787org.meshtastic.core.repository.DataPair
Tff7b72import T7ee787org.meshtastic.core.repository.Location
Tff7b72import T7ee787org.meshtastic.core.repository.LocationRepository
Tff7b72import T7ee787org.meshtastic.core.repository.MeshLocationManager
Tff7b72import T7ee787org.meshtastic.core.repository.MeshWorkerManager
Tff7b72import T7ee787org.meshtastic.core.repository.PlatformAnalytics
Tff7b72import T7ee787org.meshtastic.core.repository.RadioInterfaceService
Tff7b72import T7ee787org.meshtastic.core.repository.ServiceBroadcasts
Tff7b72import T7ee787org.meshtastic.proto.MqttClientProxyMessage
Tff7b72import T7ee787org.meshtastic.mqtt.ConnectionState Tff7b72as Te6edf3MqttConnectionState
Tff7b72import T7ee787org.meshtastic.proto.Position Tff7b72as Te6edf3ProtoPosition
T8b949e/**
* No-op stub implementations for truly platform-specific interfaces.
*
* These stubs exist ONLY for interfaces that have no `commonMain` implementation and require Android-specific APIs
* (BLE/USB transport, notifications, WorkManager, location services, broadcasts, widgets). All other interfaces use
* real `commonMain` implementations wired through the generated Koin K2 modules.
*
* As real desktop implementations become available (e.g., serial transport, TCP transport), they replace individual
* stubs in [desktopModule].
*/
Tff7b72private Tff7b72const Tff7b72val Te6edf3TAG Tff7b72= Ta5d6ff"Ta5d6ffNoopStubTa5d6ff"
Tff7b72private Tff7b72fun Td2a8fflogWarnTb4b4b4(Te6edf3messageTb4b4b4: Tffa657StringTb4b4b4) Tb4b4b4{
Te6edf3LoggerTb4b4b4.Te6edf3wTb4b4b4(Te6edf3tag Tff7b72= Te6edf3TAGTb4b4b4) Tb4b4b4{ Te6edf3message Tb4b4b4}
Tb4b4b4}
T8b949e// region Transport / Radio Stubs (Android BLE/USB — no commonMain impl)
Tff7b72class T56d364NoopRadioInterfaceService Tb4b4b4: Te6edf3RadioInterfaceService Tb4b4b4{
Tff7b72override Tff7b72val Te6edf3supportedDeviceTypesTb4b4b4: Te6edf3ListTff7b72<Te6edf3DeviceTypeTff7b72> Tff7b72= Te6edf3emptyListTb4b4b4(Tb4b4b4)
Tff7b72override Tff7b72val Te6edf3connectionState Tff7b72= Te6edf3MutableStateFlowTff7b72<Te6edf3ConnectionStateTff7b72>Tb4b4b4(Te6edf3ConnectionStateTb4b4b4.Te6edf3DisconnectedTb4b4b4)
Tff7b72override Tff7b72val Te6edf3currentDeviceAddressFlow Tff7b72= Te6edf3MutableStateFlowTff7b72<Tffa657String?Tff7b72>Tb4b4b4(Tff7b72nullTb4b4b4)
Tff7b72override Tff7b72fun Td2a8ffisMockTransportTb4b4b4(Tb4b4b4)Tb4b4b4: Tffa657Boolean Tff7b72= Tff7b72false
Tff7b72override Tff7b72val Te6edf3receivedData Tff7b72= Te6edf3MutableSharedFlowTff7b72<Te6edf3ByteArrayTff7b72>Tb4b4b4(Tb4b4b4)
Tff7b72override Tff7b72val Te6edf3meshActivityTb4b4b4: Te6edf3FlowTff7b72<Te6edf3MeshActivityTff7b72> Tff7b72= Te6edf3MutableSharedFlowTff7b72<Te6edf3MeshActivityTff7b72>Tb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3asFlowTb4b4b4(Tb4b4b4)
Tff7b72override Tff7b72val Te6edf3connectionErrorTb4b4b4: Te6edf3FlowTff7b72<Tffa657StringTff7b72> Tff7b72= Te6edf3MutableSharedFlowTff7b72<Tffa657StringTff7b72>Tb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3asFlowTb4b4b4(Tb4b4b4)
Tff7b72override Tff7b72fun Td2a8ffsendToRadioTb4b4b4(Te6edf3bytesTb4b4b4: Te6edf3ByteArrayTb4b4b4) Tb4b4b4{
Te6edf3logWarnTb4b4b4(Ta5d6ff"Ta5d6ffNoopRadioInterfaceService.sendToRadio(Tffd700${Te6edf3bytesTb4b4b4.Te6edf3sizeTffd700}Ta5d6ff bytes)Ta5d6ff"Tb4b4b4)
Tb4b4b4}
Tff7b72override Tff7b72fun Td2a8ffresetReceivedBufferTb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// No-op: this stub never buffers bytes.
Tb4b4b4}
Tff7b72override Tff7b72fun Td2a8ffconnectTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3logWarnTb4b4b4(Ta5d6ff"Ta5d6ffNoopRadioInterfaceService.connect()Ta5d6ff"Tb4b4b4)
Tb4b4b4}
Tff7b72override Tff7b72suspend Tff7b72fun Td2a8ffdisconnectTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3logWarnTb4b4b4(Ta5d6ff"Ta5d6ffNoopRadioInterfaceService.disconnect()Ta5d6ff"Tb4b4b4)
Tb4b4b4}
Tff7b72override Tff7b72fun Td2a8ffgetDeviceAddressTb4b4b4(Tb4b4b4)Tb4b4b4: Tffa657String? Tff7b72= Tff7b72null
Tff7b72override Tff7b72fun Td2a8ffsetDeviceAddressTb4b4b4(Te6edf3deviceAddrTb4b4b4: Tffa657String?Tb4b4b4)Tb4b4b4: Tffa657Boolean Tff7b72= Tff7b72false
Tff7b72override Tff7b72fun Td2a8fftoInterfaceAddressTb4b4b4(Te6edf3interfaceIdTb4b4b4: Te6edf3InterfaceIdTb4b4b4, Te6edf3restTb4b4b4: Tffa657StringTb4b4b4)Tb4b4b4: Tffa657String Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72override Tff7b72fun Td2a8ffonConnectTb4b4b4(Tb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72override Tff7b72fun Td2a8ffonDisconnectTb4b4b4(Te6edf3isPermanentTb4b4b4: Tffa657BooleanTb4b4b4, Te6edf3errorMessageTb4b4b4: Tffa657String?Tb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72override Tff7b72fun Td2a8ffhandleFromRadioTb4b4b4(Te6edf3bytesTb4b4b4: Te6edf3ByteArrayTb4b4b4) Tb4b4b4{Tb4b4b4}
Tf0883e@SuppressTb4b4b4(Ta5d6ff"Ta5d6ffInjectDispatcherTa5d6ff"Tb4b4b4)
Tff7b72override Tff7b72val Te6edf3serviceScopeTb4b4b4: Te6edf3CoroutineScope Tff7b72= Te6edf3CoroutineScopeTb4b4b4(Te6edf3SupervisorJobTb4b4b4(Tb4b4b4) Tff7b72+ Te6edf3DispatchersTb4b4b4.Te6edf3DefaultTb4b4b4)
Tb4b4b4}
T8b949e// endregion
T8b949e// region Notification / Platform Stubs (Android-only)
Tff7b72class T56d364NoopPlatformAnalytics Tb4b4b4: Te6edf3PlatformAnalytics Tb4b4b4{
Tff7b72override Tff7b72fun Td2a8fftrackTb4b4b4(Te6edf3eventTb4b4b4: Tffa657StringTb4b4b4, Tff7b72vararg Te6edf3propertiesTb4b4b4: Te6edf3DataPairTb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72override Tff7b72fun Td2a8ffsetDeviceAttributesTb4b4b4(Te6edf3firmwareVersionTb4b4b4: Tffa657StringTb4b4b4, Te6edf3modelTb4b4b4: Tffa657StringTb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72override Tff7b72val Te6edf3isPlatformServicesAvailableTb4b4b4: Tffa657Boolean Tff7b72= Tff7b72false
Tb4b4b4}
Tff7b72class T56d364NoopServiceBroadcasts Tb4b4b4: Te6edf3ServiceBroadcasts Tb4b4b4{
Tff7b72override Tff7b72fun Td2a8ffsubscribeReceiverTb4b4b4(Te6edf3receiverNameTb4b4b4: Tffa657StringTb4b4b4, Te6edf3packageNameTb4b4b4: Tffa657StringTb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72override Tff7b72fun Td2a8ffbroadcastReceivedDataTb4b4b4(Te6edf3dataPacketTb4b4b4: Te6edf3DataPacketTb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72override Tff7b72fun Td2a8ffbroadcastConnectionTb4b4b4(Tb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72override Tff7b72fun Td2a8ffbroadcastNodeChangeTb4b4b4(Te6edf3nodeTb4b4b4: Te6edf3NodeTb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72override Tff7b72fun Td2a8ffbroadcastMessageStatusTb4b4b4(Te6edf3packetIdTb4b4b4: Tffa657IntTb4b4b4, Te6edf3statusTb4b4b4: Te6edf3MessageStatusTb4b4b4) Tb4b4b4{Tb4b4b4}
Tb4b4b4}
Tff7b72class T56d364NoopAppWidgetUpdater Tb4b4b4: Te6edf3AppWidgetUpdater Tb4b4b4{
Tff7b72override Tff7b72suspend Tff7b72fun Td2a8ffupdateAllTb4b4b4(Tb4b4b4) Tb4b4b4{Tb4b4b4}
Tb4b4b4}
T8b949e// endregion
T8b949e// region WorkManager / Location Stubs (Android-only)
Tff7b72class T56d364NoopMeshWorkerManager Tb4b4b4: Te6edf3MeshWorkerManager Tb4b4b4{
Tff7b72override Tff7b72fun Td2a8ffenqueueSendMessageTb4b4b4(Te6edf3packetIdTb4b4b4: Tffa657IntTb4b4b4) Tb4b4b4{Tb4b4b4}
Tb4b4b4}
Tff7b72class T56d364NoopMeshLocationManager Tb4b4b4: Te6edf3MeshLocationManager Tb4b4b4{
Tff7b72override Tff7b72fun Td2a8ffstartTb4b4b4(Te6edf3scopeTb4b4b4: Te6edf3CoroutineScopeTb4b4b4, Te6edf3sendPositionFnTb4b4b4: Tb4b4b4(Te6edf3ProtoPositionTb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72override Tff7b72fun Td2a8ffstopTb4b4b4(Tb4b4b4) Tb4b4b4{Tb4b4b4}
Tb4b4b4}
Tff7b72class T56d364NoopLocationRepository Tb4b4b4: Te6edf3LocationRepository Tb4b4b4{
Tff7b72override Tff7b72val Te6edf3receivingLocationUpdates Tff7b72= Te6edf3MutableStateFlowTb4b4b4(Tff7b72falseTb4b4b4)
Tff7b72override Tff7b72fun Td2a8ffgetLocationsTb4b4b4(Tb4b4b4)Tb4b4b4: Te6edf3FlowTff7b72<Te6edf3LocationTff7b72> Tff7b72= Te6edf3emptyFlowTb4b4b4(Tb4b4b4)
Tb4b4b4}
T8b949e// endregion
T8b949e// region Network Stubs (MQTT — not yet available on Desktop)
Tff7b72class T56d364NoopMQTTRepository Tb4b4b4: Te6edf3MQTTRepository Tb4b4b4{
Tff7b72override Tff7b72fun Td2a8ffdisconnectTb4b4b4(Tb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72override Tff7b72val Te6edf3proxyMessageFlowTb4b4b4: Te6edf3FlowTff7b72<Te6edf3MqttClientProxyMessageTff7b72> Tff7b72= Te6edf3emptyFlowTb4b4b4(Tb4b4b4)
Tff7b72override Tff7b72fun Td2a8ffpublishTb4b4b4(Te6edf3topicTb4b4b4: Tffa657StringTb4b4b4, Te6edf3dataTb4b4b4: Te6edf3ByteArrayTb4b4b4, Te6edf3retainedTb4b4b4: Tffa657BooleanTb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72override Tff7b72val Te6edf3connectionState Tff7b72= Te6edf3MutableStateFlowTff7b72<Te6edf3MqttConnectionStateTff7b72>Tb4b4b4(Te6edf3MqttConnectionStateTb4b4b4.Te6edf3DisconnectedTb4b4b4.Te6edf3IdleTb4b4b4)
Tb4b4b4}
T8b949e// endregion
Served by rngit 1.5.2 - Generated in 0.06s